package JsoupXmlDtd;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.lang.String;

/*
 解析xml文档:
     1:解析(读取):将文档中的数据读取到内存中
     2:写入: 将内存中的数据保存到xml文档中.持久化的存储

 解析xml的方式:
    1:DOM :将标记语言文档一次性加载进内存,在内存中形成一颗dom树
       *优点:操作方便,可以对文档进行CRUD的所有操作
       *缺点: 占内存
    2:SAX :逐行读取,基于事件驱动的.
       *优点:不占内存
       *缺点:只能读取,不能增删改

  xml常见的解析器: 1:JAXP 2:DOM4J 3:Jsoup 4:PULL

   Jsoup快速入门: 1:导入jar包  2:获取Document对象  3:获取对应的标签Element对象  4:获取数据

*/
public class demo01_Jsoup {
    public static void main(String[] args) throws IOException {
        //2获取Document对象
        //2.1获取03_student.xml的路径path
        String aa = demo01_Jsoup.class.getClassLoader().getResource("03_student.xml").getPath();
        //2.2解析xml文档,加载文档进内存,获取dom树--->Document
        Document bb = Jsoup.parse(new File(aa+"\\03_student.xml"), "utf-8");
        //3获取元素对象Element
        Elements cc = bb.getElementsByTag("name");
        //获取第一个name的Element对象
        Element dd = cc.get(0);
        //获取数据
        String ee = dd.text();
        System.out.println(ee);
        System.out.println("=====================");
        /*
          Jsoup作用:工具类,可以解析html或xml文档,返回Document
          Document:文档对象.代表内存中的dom树
          Elements:元素Element对象的集合.可以当做ArrayList<Element>来使用
          Element:元素对象

        */

        System.out.println(System.getProperty("user.dir"));
    }
}
